<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Cliente extends CI_Controller {

	/* Layout utilizado pela pagina. */
	public $layout = 'default_admin';
	
	/* Titulo da Pagina. */
	public $title = CLIENTE;
	
	/* Menu do sistema*/
	public $menuTopo = '';
	
	/* Menu do sistema*/
	public $menuLateral = '';
	
	/* Caminho do pão do sistema */
	public $caminhoPao = '';
	
	/* css utilizado pela pagina. */
	public $css = array('admin/bootstrap', 'admin/animate', 'admin/style', 'plugins/waitMe/waitMe' );
	
	/* Js utilizado pela pagina. */
	public $js = array('plugins/jquery/jquery-2.1.4', 'admin/bootstrap', 'plugins/metisMenu/jquery.metisMenu', 'plugins/slimscroll/jquery.slimscroll.min', 'admin/principal', 'plugins/pace/pace.min', 'plugins/jquery-cookie/jquery.cookie', 'plugins/waitMe/waitMe');
	
	private $classe;
	
	/**
 	* Método construtor executado quando chamado a classe
	* @author Rodrigo Valt <rodrigo.valt@sigma.com.br>
	* @since 31/07/2015 16:46:34
	*/
	public function __construct()
	{
		parent::__construct();
		//Verifica se o usuário está logado
		usuarioLogado($this->session->userdata('logged'));
		
		//TODO Load das classe model
		
		$this->classe = trim(strtolower(get_class($this)));	
		
		//Valida permissões do usuário
		$this->permissao_lib->validaUsuarioPermissaoAcessarModulo($this->classe);
		
		//Montando menu dinâmico
		$this->load->library('Menu_Lib', 'menu_lib');
		$this->menuTopo = $this->menu_lib->menuTopo();
		$this->menuLateral = $this->menu_lib->menuLateral($this->classe);
		
		include_once 'app/enum/EnumTipoCliente.php';
	}
	
	/**
	* Método responsável por iniciar a classe
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function index()	{					
		try {
		
				//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Cadastrar Cliente");
	
			array_push($this->js, 'plugins/select2/select2.min', 'plugins/jquery-mask/jquery.mask.min', 'plugins/datapicker/bootstrap-datepicker', 'plugins/iCheck/icheck', 'plugins/formValidation/formValidation', 'plugins/framework/bootstrap', 'admin/cliente/cadastrar_cliente');
			array_push($this->css, 'plugins/select2/select2', 'plugins/datapicker/datepicker3', 'plugins/iCheck/custom', 'plugins/formValidation/formValidation');
			
			
			$this->load->view('admin/cliente/cadastrar_cliente');
			
		}catch (Exception $e){
			echo ($e->getMessage());
		}
		
	}
	
	/**
	* Método responsável por realizar a pesquisa
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function pesquisar(){
		try {
			
			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			$html = "";
			
			//TODO Fazer logica da realizar pesquisa
			
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			$json['html'] = $html;
				
			echo json_encode($json);
						
		}catch (Exception $e){
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
	}
	
	/**
	* Método responsável por chamar a tela inicial do cadastro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function telaCadastrar(){
		try {
		
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Cadastrar UCS");
	
			array_push($this->js, "");
			array_push($this->css, "");
			
			//TODO Fazer logica para a tela cadastrar
				
			$this->load->view('caminho da view');
	
		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}
	
	/**
	* Método responsável por chamar a tela inicial do alterar
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function telaAlterar(){
		try {
		
			$this->session->set_userdata('idBancoTela', trim($this->input->get("id")));
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Alterar UCS");
	
			array_push($this->js, "");
			array_push($this->css, "");
			
			//TODO Fazer logica para a tela alterar
			
			$this->load->view('caminho da view');
	
		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}
	
	/**
	* Método responsável por chamar a tela inicial do exibir
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function telaExibir(){
		try {
		
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Exibir UCS");
				
			array_push($this->js, "");
			array_push($this->css, "");
			
			//TODO Fazer logica para a tela de exibir
			
			$this->load->view('caminho da view');
	
		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}
	
	/**
	* Método responsável por salvar o registro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function salvar(){
		
		try {
			
			$this->layout = "";
			
			$this->util_lib->validaPermissaoRegistro("telaCadastrar", $this->classe);
			
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			//TODO Fazer lógica para recuperar os dados da tela
			
			//Iniciando transação
			$this->db->trans_begin();
			
			//TODO Fazer logica para salvar o registro				
						
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
			
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);
			
		} catch (Exception $e) {
			$this->db->trans_rollback();
			
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
		
	}
		
	/**
	* Método responsável por alterar o registro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function alterar(){
	
		try {
				
			$this->layout = "";
			
			$this->util_lib->validaPermissaoRegistro("telaAlterar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			//TODO Fazer lógica para recuperar os dados da tela
			
			//Iniciando transação
			$this->db->trans_begin();
			
			//TODO Fazer logica para salvar o registro	
				
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
				
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);
				
		} catch (Exception $e) {
			$this->db->trans_rollback();
			
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
	
	}
	
	/**
	* Método responsável por excluir o registro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function excluir(){
	
		try {
	
			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$this->util_lib->validaPermissaoRegistro("excluir", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			//TODO Fazer lógica para recuperar os dados da tela
				
			//Iniciando transação
			$this->db->trans_begin();

			//TODO Fazer logica para excluir o registro	
	
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
	
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
				
			echo json_encode($json);
	
		} catch (Exception $e) {
			$this->db->trans_rollback();
			
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
	
	}
	
	/**
	* Método responsável por reativar o registro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function reativar(){
	
		try {
	
			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$this->util_lib->validaPermissaoRegistro("reativar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			//TODO Fazer lógica para recuperar os dados da tela
					
			//Iniciando transação
			$this->db->trans_begin();
	
			//TODO Fazer logica para reativar o registro	
	
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
	
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);
	
		} catch (Exception $e) {
			$this->db->trans_rollback();
			
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
	
	}
	
	/**
	* Método responsável por inativar o registro
 	* @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	* @author Valt Soluções em TI
	* @since 31/07/2015 16:46:34
	*/
	public function inativar(){
	
		try {
	
			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$this->util_lib->validaPermissaoRegistro("inativar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			//TODO Fazer lógica para recuperar os dados da tela
		
			//Iniciando transação
			$this->db->trans_begin();
			
			//TODO Fazer logica para reativar o registro
	
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
	
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);
	
		} catch (Exception $e) {
			$this->db->trans_rollback();
			
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
			
			echo json_encode($json);
		}
	
	}
	
}
